perm filename CALU.MF[MF,SYS]3 blob sn#798963 filedate 1985-07-12 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00028 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00003 00002	% Calligraphic capitals with `fixed' pens, by N. N. Billawala (1985).
C00004 00003	cmchar "Calligraphic A"
C00006 00004	cmchar "Calligraphic B"
C00007 00005	cmchar "Calligraphic C"
C00008 00006	cmchar "Calligraphic D"
C00009 00007	cmchar "Calligraphic E"
C00010 00008	cmchar "Calligraphic F"
C00011 00009	cmchar "Calligraphic G"
C00012 00010	cmchar "Calligraphic H"
C00014 00011	cmchar "Calligraphic I"
C00015 00012	cmchar "Calligraphic J"
C00016 00013	cmchar "Calligraphic K"
C00017 00014	cmchar "Calligraphic L"
C00018 00015	cmchar "Calligraphic M"
C00020 00016	cmchar "Calligraphic N"
C00022 00017	cmchar "Calligraphic O"
C00023 00018	cmchar "Calligraphic P"
C00024 00019	cmchar "Calligraphic Q"
C00025 00020	cmchar "Calligraphic R"
C00026 00021	cmchar "Calligraphic S"
C00027 00022	cmchar "Calligraphic T"
C00028 00023	cmchar "Calligraphic U"
C00029 00024	cmchar "Calligraphic V"
C00032 00025	cmchar "Calligraphic W"
C00034 00026	cmchar "Calligraphic X"
C00035 00027	cmchar "Calligraphic Y"
C00036 00028	cmchar "Calligraphic Z"
C00038 ENDMK
CāŠ—;
% Calligraphic capitals with `fixed' pens, by N. N. Billawala (1985).

% These letters are intended for math, hence |math_fitting| is assumed.

% Character codes \0101 through \0132 are generated.
cmchar "Calligraphic A";
beginchar("A",14.4u#,cap_height#,0);
italcorr .5u#;
adjust_fit(-.05w#,0); pickup cal.nib;
lft x5=.55w; x7=.9w;
top y5=h+.5cap_curve; bot y7=bot_flourish_line;
z6=.3[z7,z5]-bend;
pickup tilted.nib;
lft x1=.05w; x2=.2w; rt x4=x5;
y1=y2+.1h; bot y2=bot_flourish_line; top y4=h+.5cap_curve;
y3=y6; z3=whatever[z2,z4]+2bend;
draw (z1..tension 1.2..{right}z2) soft flex(z2,z3,z4); % left diagonal
pickup cal.nib;
erase fill (0,bot y5)--(w,bot y5)--(w,top y5)--(0,top y5)--cycle;
draw flex(z5,z6,z7) soft (z7--z7+cal.extension); % right diagonal
draw rt z3--z6;	% bar
math_fit(.5u#-.1cap_height#*slant,ic#); labels(1,2,3,4,5,6,7); endchar;
cmchar "Calligraphic B";
beginchar("B",9.9u#,cap_height#,0);
italcorr max(.8h#*slant-.1w#,.3h#*slant)+.5u#;
adjust_fit(0,0); pickup cal.nib;
lft x1=lft x3=0; x4=.6[x2,x5]; rt x5=.9w; x6=.4w; rt x7=w;
x8=.4[x9,x7]; lft x9=rt x3;
top y1=h+o; bot y3=-o; z2=.3[z3,z1]+bend;
y4=y1; y5=.6[y6,y4]; y6=.55h; y7=.45[y8,y6]; bot y8=-o; y9=.1h;
draw z1-cal.extension--flex(z1,z2,z3);	% stem
draw z2{up}...z4...z5{down}...{dir 200}z6{dir 10}
 ...z7{down}...z8{left}...z9;	% lobes
math_fit(.5u#,.3h#*slant+.5u#); labels(1,2,3,4,5,6,7,8,9); endchar;
cmchar "Calligraphic C";
beginchar("C",9.4u#,cap_height#,0);
italcorr max(h#*slant-.15w#,.2h#*slant)+.5u#;
adjust_fit(0,0); pickup cal.nib;
x0=.7[x2,x1]; rt x1=.85w; x2=.6w; lft x3=0; x4=.5w; rt x5=w;
y0=.7h; y1=.8[y0,y2]; top y2=h+o; y3=.5h; bot y4=-o; y5=.2h;
draw (z0{2(x1-x0),y1-y0}...z1) soft
 (z1...z2{left}....z3{down}...z4...z5);	% stroke
math_fit(.5u#-.5h#*slant,.2h#*slant+.5u#); labels(0,1,2,3,4,5); endchar;
cmchar "Calligraphic D";
beginchar("D",10u#,cap_height#,0);
italcorr .6h#*slant+.5u#;
adjust_fit(4u#,0); pickup cal.nib;
lft x1=lft x3=0; x4=.4[x1,x5]; rt x5=w; x6=.2w; x7=0;
top y1=top y4=h; bot y3=0; z2=.5[z3,z1]+bend;
y5=.55[y6,y4]; bot y6=bot y7=0;
draw flex(z1,z2,z3);	% stem
draw z1---z4...z5...z6---z7;	% lobe
draw z1{left}...{down}z1-flourish_change;	% swash
math_fit(.5u#-.8h#*slant,ic#-.5u#); labels(1,2,3,4,5,6,7); endchar;
cmchar "Calligraphic E";
beginchar("E",8.5u#,cap_height#,0);
italcorr max(h#*slant-.1w#,.2h#*slant)+.5u#;
adjust_fit(0,0); pickup cal.nib;
x1=.9[x3,x2]; rt x2=.9w; x3=.6[x4,x2]; lft x4=.05w;
x5=.7[x6,x2]; lft x6=0; x7=.5[x6,x8]; rt x8=w;
y1=y2-.1h; y2=.9h+o; top y3=h+o; y4=.5[y5,y3];
y5=.55h; y6=.6[y5,y7]; bot y7=-o; y8=.2h;
draw (z1{2(x2-x1),y2-y1}...z2) soft
 (z2...z3{left}...z4{down}...{right}z5);	% upper arc
draw z5{left}...z6{down}...z7{right}...z8;	% lower arc
math_fit(.5u#-.2h#*slant,.2h#*slant+.5u#);
labels(1,2,3,4,5,6,7,8); endchar;
cmchar "Calligraphic F";
beginchar("F",13.5u#,cap_height#,0);
italcorr h#*slant+.5u#;
adjust_fit(-.1w#,0); pickup cal.nib;
x1=.5w; x3=.4w;  lft x4=.1w; x5=x2+.35w; x6=.7[x1,x7]; rt x7=w;
top y1=top y6=h; z2=.5[z3,z1]+bend;
bot y3=-o; y4=.1h; y5=y2; y7=.9h;
draw flex(z1,z2,z3) soft (z3...{x4-x3,5(y4-y3)}z4);	% stem
draw z1-flourish_change{up}...z1---z6...{down}z7;	%  upper bar
draw z2--z5--z5-(0,.1cap_curve);	% middle bar
math_fit(0,.5ic#); labels(1,2,3,4,5,6,7); endchar;
cmchar "Calligraphic G";
beginchar("G",9.4u#,cap_height#,.5desc_depth#);
italcorr max(h#*slant-.05w#,.5h#*slant)+.5u#;
adjust_fit(0,0); pickup cal.nib;
x0=.7[x2,x1]; rt x1=.95w; x2=.6w; lft x3=0; x4=.5w;
rt x5=w; x6=.5[x7,x5]; lft x7=.2w;
y0=.7h+o; y1=.8[y0,y2]; top y2=h+o; y3=.5[y4,y2]; bot y4=.1h;
y5=.5h; bot y6=-d-o; y7=-.5d;
draw (z0{2(x1-x0),y1-y0}...z1) soft
 (z1...z2{left}....z3{down}...z4...{up}z5);	% arc
draw z5{down}...z6{left}...z7;	% tail
math_fit(.5u#-.4h#*slant,.5h#*slant+.5u#);
labels(0,1,2,3,4,5,6,7); endchar;
cmchar "Calligraphic H";
beginchar("H",12.2u#,cap_height#,0);
italcorr max(h#*slant-.2w#,.15h#*slant)+.5u#;
adjust_fit(4u#,0); pickup cal.nib;
lft x1=lft x3=0; rt x4=rt x6=.8w; rt x9=w;
top y1=top y4=h; bot y3=-o; bot y6=bot_flourish_line; y9=y6+.1h;
z2=.6[z3,z1]+bend; z5=.4[z6,z4]-2bend;
path p[]; p1=flex(z1,z2,z3); p2=flex(z4,z5,z6);
p3=(-w,.55h)--(2w,.55h);
lft z7=p3 intersectionpoint p1; rt z8=p3 intersectionpoint p2;
draw z1-flourish_change{up}....z1-(u,0)---z1 & p1;	% left stem
draw p2 soft (z6{right}...{up}z9);	% right stem
draw z7--z8;	% bar
math_fit(.5u#-.8h#*slant,.15h#*slant+.5u#);
labels(1,2,3,4,5,6,7,8,9); endchar;
cmchar "Calligraphic I";
beginchar("I",10.8u#,cap_height#,0);
italcorr max(h#*slant+.5cap_curve#-.2w#,.15h#*slant)+.5u#;
adjust_fit(0,0); pickup cal.nib;
lft x0=0; x1=.8w; x2=x4=.5w; x5=.2w; x6=.75w; rt x7=w;
y0=.8h; top y1=top y2=h; z3=.5[z4,z2]+bend;
bot y4=bot y5=bot y6=0; y7=.15h;
draw z0{up}...z2---z1;	% upper bar
draw flex(z2,z3,z4);	% stem
draw z5---z6...{up}z7;	% lower bar
math_fit(.5u#-.8h#*slant,.15h#*slant+.5u#);
labels(0,1,2,3,4,5,6,7); endchar;
cmchar "Calligraphic J";
beginchar("J",11.7u#,cap_height#,.5desc_depth#);
italcorr h#*slant+.25u#;
adjust_fit(0,0); pickup cal.nib;
x0=.6w; rt x1=w; rt x2=.75w; x3=.5[x4,x2]; lft x4=0;
top y0=top y1=h; y2=.2h; bot y3=-d-o; y4=d;
draw z1---z0...{down}z0-(4u,2/7h);	% upper bar
draw z1{left}...z2{down}...z3{left}...{up}z4;	% stem and tail
math_fit(.5u#,0); labels(0,1,2,3,4); endchar;
cmchar "Calligraphic K";
beginchar("K",11u#,cap_height#,0);
italcorr max(h#*slant-.2w#,.2h#*slant)+.5u#;
adjust_fit(0,.1w#); pickup cal.nib;
lft x1=lft x3=0; top y1=h+o; bot y3=-o; z2=.6[z3,z1]+bend;
draw z1-cal.extension--flex(z1,z2,z3);	% stem
pickup pencircle xscaled stem yscaled vair rotated 30;
rt x4=.9w; x5=x4-.1w; x7=.8w; rt x8=1.1w;
y4=.9h; top y5=h+o; bot y7=-o; y8=.2h-o;
lft z6=z2+penoffset up of pen_[cal.nib];
draw z4{up}...{left}z5..tension atleast 2..{down}z6
 ..tension atleast 3 and atleast 2..z7{right}...{up}z8;	% diagonals
math_fit(.5u#,.2h#*slant+.5u#);
labels(1,2,3,4,5,6,7,8); endchar;
cmchar "Calligraphic L";
beginchar("L",10.8u#,cap_height#,0);
italcorr .2h#*slant+.5u#;
adjust_fit(0,0); pickup cal.nib;
x1=.2w; x2=x1+.3w; rt x3=x2+.25w; lft x4=0;
x5=.8[x4,x6]; rt x6=w; x7=.2[x4,x5];
y1=.4h-o; top y2=h+o; y3=.8h; bot y4=bot y5=-o; y6=.2h-o; y7=9/70h-o;
path p; p=z4...z7{right}..{right}z5...{up}z6;
draw p;	% arm
draw z4{dir .75angle(direction 0 of p)}
 ...z1{up}...z2{right}...{down}z3;	% stem and flourish
math_fit(.5u#,ic#); labels(1,2,3,4,5,6,7); endchar;
cmchar "Calligraphic M";
beginchar("M",19.8u#,cap_height#,0);
italcorr max(h#*slant-u#,.75cap_curve#)+.5cap_curve#+.5u#;
adjust_fit(-.1w#,0); pickup cal.nib;
top z5-z4=top z11-z10=penoffset left of pen_[tilted.nib];
z6=.3[z7,z5]-bend; z9=.3[z8,z10]+.5bend; z12=.3[z13,z11]-bend;
x7=.5[x2,x13]; bot y7=.05h; x13=w; bot y13=bot_flourish_line; z7=z8;
pickup tilted.nib;
lft x1=.1w; x2=.2w; x4=.2[x2,x7]; x10=.8[x7,x13];
y1=.05h+y2; bot y2=bot_flourish_line; top y4=top y10=h+o;
z3=whatever[z2,z4]+2bend; y3=y6;
draw (z1..tension1.2..{right}z2) soft flex(z2,z3,z4);	% left stem
draw flex(z8,z9,z10);	% right diagonal
pickup cal.nib;
erase fill (0,bot y5)--(w,bot y5)--(w,top y5)--(0,top y5)--cycle;
draw flex(z5,z6,z7);	% left diagonal
draw flex(z11,z12,z13) soft (z13--z13+cal.extension);	% right stem
math_fit(.5u#-.05h#*slant,ic#); labels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
cmchar "Calligraphic N";
beginchar("N",9u#,cap_height#,0);
italcorr h#*slant+.5u#;
adjust_fit(2u#,3u#); pickup cal.nib;
top z5=z4+penoffset left of pen_[tilted.nib];
z6=.3[z7,z5]-bend; rt z7=(w,0);
pickup tilted.nib;
lft x1=x2-2u; x2=-u; x4=0; rt x8=w; x10=w; rt x11=w+3u;
y1=y2+.05h; bot y2=bot_flourish_line; top y4=h+o;
y3=y6; z3=whatever[z2,z4]+2bend;
y8=0; y10=h; z9=.7[z8,z10]-.5bend; bot y11=h;
draw (z1..tension1.2..{right}z2) soft flex(z2,z3,z4);	% left stem
draw flex(z8,z9,z10)...{right}z11;	% right stem
pickup cal.nib;
erase fill (-4u,bot y5)--(.5w,bot y5)--(.5w,top y5)--(-4u,top y5)--cycle;
draw flex(z5,z6,z7);	% diagonal
math_fit(.5u#-.05h#*slant,.5h#*slant);
labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
cmchar "Calligraphic O";
beginchar("O",12.6u#,cap_height#,0);
italcorr .7h#*slant+.5u#;
adjust_fit(0,0); pickup cal.nib;
x1=.3w; lft x2=0; x3=.5w; rt x4=w; x5=.6w; lft x6=.27w;
top y1=top y5=h+o; y2=.55h; bot y3=-o; y4=.5h; y6=y2;
draw z1...z2{down}...z3{right}...z4{up}...z5{left}...{down}z6;	% bowl
math_fit(.5u#-.3h#*slant,ic#-.5u#);
labels(1,2,3,4,5,6); endchar;
cmchar "Calligraphic P";
beginchar("P",9u#,cap_height#,0);
italcorr .8h#*slant+.5u#;
adjust_fit(4u#,0); pickup cal.nib;
lft x1=lft x3=0; x4=x6=.3[x1,x5]; rt x5=w;
top y1=top y4=h; bot y3=-o; y5=.55[y6,y4]; bot y6=.3h;
z2=.5[z3,z1]+bend;
draw flex(z1,z2,z3);	% stem
draw z1{left}...{down}z1-flourish_change;	% swash
draw z1---z4...z5{down}...{left}z6;	% lobe
math_fit(.5u#-.8h#*slant,.5ic#); labels(1,2,3,4,5,6); endchar;
cmchar "Calligraphic Q";
beginchar("Q",11.7u#,cap_height#,.5desc_depth#);
italcorr max(0,.6h#*slant-2u#)+.5u#;
adjust_fit(0,2u#); pickup cal.nib;
x0=.6w; x1=.4w; lft x2=0; x3=.5w; rt x4=w; x5=.6w; lft x6=0;
x7=.15w; rt x8=w; x9=x8+2u;
y0=.25h; bot y1=.15h; y2=.45[y1,y3]; top y3=h+o; y4=.5h; bot y5=0;
y6=y7=y9=0; y8=-d;
draw z0...z1{left}...z2{up}...z3{right}...z4{down}...z5...{left}z7; % bowl
draw z7{right}...z8{right}...{up}z9;	% tail
math_fit(.5u#,ic#); labels(0,1,2,3,4,5,6,7,8,9); endchar;
cmchar "Calligraphic R";
beginchar("R",12.6u#,cap_height#,0);
italcorr .2h#*slant;
adjust_fit(4u#,0); pickup cal.nib;
lft x1=lft x3=0; x4=.5[x1,x5]; rt x5=.7w; x6=.4[x1,x5]; rt x7=.8w; rt x8=w;
top y1=top y4=h; bot y3=bot y7=-o; y5=.55[y6,y4]; bot y6=.4h; y8=.2h;
z2=.5[z3,z1]+bend;
draw flex(z1,z2,z3);	% stem
draw z1{left}...{down}z1-flourish_change;	% swash
draw z1---z4...z5{down}...{left}z6;	% lobe
draw z6{right}..tension atleast 2..z7{right}..z8;	% tail
math_fit(.5u#-.8h#*slant,ic#); labels(1,2,3,4,5,6,7,8); endchar;
cmchar "Calligraphic S";
beginchar("S",9.9u#,cap_height#,0);
italcorr max(.9h#*slant-.05w#,.3h#*slant)+.5u#;
adjust_fit(0,0); pickup cal.nib;
rt x0=rt x1=.95w; x2=.5[x3,x1]; lft x3=.15w; x4=.5[x6,x2];
rt x5=w; x6=.5w; lft x7=0; lft x8=.075w;
y0=.8h; y1=.9h; top y2=h+o; y3=.55[y4,y2]; y4=.55[y6,y2];
y5=.45[y6,y4]; bot y6=-o; y7=.2h; y8=.35h;
draw (z0--z1) soft (z1...z2{left}...z3{down}...z4...z5{down}
  ...z6{left}...z7) soft (z7{up}...{right}z8);	% stroke
math_fit(.5u#-.3h#*slant,.3h#*slant+.5u#);
labels(0,1,2,3,4,5,6,7,8); endchar;
cmchar "Calligraphic T";
beginchar("T",14u#,cap_height#,0);
italcorr h#*slant+.5u#;
adjust_fit(0,0); pickup cal.nib;
x1=x3=.5w; lft x4=0; x5=w-x6=.25w; rt x7=w;
top y1=h; bot y3=0; y4=5/7h; top y5=top y6=h; top y7=1.1h;
z2=.5[z3,z1]+bend;
x1-x8=x9-x1=2u; y8=y9=y3;
draw z1...z2{down}...{left}z8;	% stem
draw z8--z9;	% foot
draw z4{up}...z5{right}...z6{right}...{up}z7;	% arms
math_fit(.5u#-5/7h#*slant,-u#); labels(1,2,3,4,5,6,7,8,9); endchar;
cmchar "Calligraphic U";
beginchar("U",11u#,cap_height#,0);
italcorr h#*slant+.5u#;
adjust_fit(.1w#,0); pickup cal.nib;
x1=x2-.15w; lft x2=.05w; lft x3=0; x4=.3w; rt x6=rt x8=w;
y1=y2-.05h; top y2=h; y3=.3w; bot y4=-o; top y6=h; bot y8=bot_flourish_line;
z7=.3[z8,z6]-bend;
draw z1...z2{right}..tension atleast 2 and 1..z3{down}
 ...{right}z4..tension atleast 1.5..{up}z6;	% left stem and arc
draw flex(z6,z7,z8) soft (z8--z8+cal.extension);	% right stem
math_fit(.5u#-min(.3h#*slant+.1w#,.95h#*slant),.5ic#);
labels(1,2,3,4,6,7,8); endchar;
cmchar "Calligraphic V";
beginchar("V",11u#,cap_height#,0);
italcorr .8h#*slant+.5u#;
adjust_fit(0,0); pickup cal.nib;
x1=0; x2=.5w; top y1=h; bot y2=0;
draw z1{right}..tension atleast 1 and infinity..z2;	% left diagonal
pickup tilted.nib;
x3=.5w; rt x4=w; x5=x4-.2w;
y3=0; top y4=.8h; top y5=h;
draw z3..tension atleast 3 and 1..z4{up}...{left}z5;	% right diagonal
math_fit(.5u#+.5cap_curve#-h#*slant,.5ic#); labels(1,2,3,4,5); endchar;
cmchar "Calligraphic W";
beginchar("W",18u#,cap_height#,0);
italcorr .8h#*slant+.5u#;
adjust_fit(0,0); pickup cal.nib;
x1=0; x2=.5[x1,x6]; x6=.52w; x8=.6[x6,x10];
top y1=top y6=h; bot y2=bot y8=0; 
z7=.5[z8,z6]+bend; z4=.5[z3,z5]+bend;
pickup tilted.nib;
x3=x2; x5=x6; x9=x8; rt x10=w; x11=x10-.1w;
y3=y9=0; top y5=h; top y10=.8h; top y11=h;
draw z3..z4..z5;	% second diagonal
erase fill (0,bot y6)--(w,bot y6)--(w,top y6)--(0,top y6)--cycle;
draw z9..tension atleast 3 and 1..z10{up}..{left}z11;	% fourth diagonal
pickup cal.nib;
draw z1{right}..tension atleast 1 and infinity..z2;	% first diagonal
draw z6..z7..z8;	% third diagonal
math_fit(.5u#+.5cap_curve#-h#*slant,.5ic#);
labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
cmchar "Calligraphic X";
beginchar("X",11.4u#,cap_height#,0);
italcorr h#*slant+.5u#;
adjust_fit(0,0); pickup cal.nib;
lft x1=.08w; lft x2=.25w; x4-x3=x2-x1; rt x4=w;
h-y1=y4=1/7h; top y2=h; bot y3=0;
draw z1{up}...z2{right}
 ..tension atleast 4..{right}z3..{up}z4;	% left diagonal
x5=x6-u; rt x6=w; lft x7=0; x8=x7+u;
top y5=h; y6=.9h; y7=h-y6; bot y8=0;
draw z5{right}...z6{down}
 ..tension atleast 3..{down}z7...{right}z8;	% right diagonal
math_fit(.5u#,1/7h#*slant+.5u#); labels(1,2,3,4,5,6,7,8); endchar;
cmchar "Calligraphic Y";
beginchar("Y",10.5u#,cap_height#,.5desc_depth#);
italcorr h#*slant+.5u#;
adjust_fit(.1w#,0); pickup cal.nib;
x1=x2-.15w; lft x2=.05w; lft x3=0; x4=.25w;
rt x6=w; x7=.3[x8,x6]; lft x8=.1w;
y1=y2-.05h; top y2=h; y3=.2[y4,y2]; bot y4=.15h;
top y6=h; bot y7=-d-o; y8=2/3y7;
draw z1...z2{right}..tension atleast 2 and 1..z3{down}
 ...{right}z4..tension atleast 1.5..{up}z6;	% left stem and arc
draw z6{down}...z7{left}...z8;	% right stem and tail
math_fit(.5u#-min(.4h#*slant+.1w#,.95h#*slant),.5ic#);
labels(1,2,3,4,6,7,8); endchar;
cmchar "Calligraphic Z";
beginchar("Z",10.4u#,cap_height#,0);
italcorr h#*slant+.5u#;
adjust_fit(0,.1w#); pickup cal.nib;
lft x1=.05w; x2=.4w; rt x3=w; lft x7=0; x8=.8[x7,x9]; rt x9=1.1w;
top y1=58/70h; top y2=top y3=h; bot y7=bot y8=0; bot y9=15/70h;
z5=.55[z7,z3]+bend;
x10=x5-2.5u; x11=x5+2u; x12=.2[x3,x2]; x13=.2[x7,x8];
y10=y5; bot y11=y10-6/70h; y12=64/70h; y13=6/70h;
draw z1{up}...z2{right}...{right}z12...z3;	% upper arm
draw flex(z3,z5,z7);	% diagonal
draw z7...z13{right}...{right}z8...{up}z9;	% lower arm
pickup pencircle xscaled stem yscaled vair rotated 30;
draw z10...z5{right}...{down}z11;	% bar
math_fit(.5u#,.5ic#); labels(1,2,3,5,7,8,9,10,11,12,13); endchar;